#include<stdio.h>

typedef int data_t;

typedef struct node{
	data_t data;
	struct node * next;
}listnode, * linklist;

//创建一个单链表（只有头节点，不存放数据）
linklist list_create();
//往链表尾部插入元素
int list_tail_insert(linklist h, data_t value);
//按位置插入元素
int list_insert(linklist h, data_t value, int pos);
//打印链表
int list_show(linklist h);
//释放链表内存
linklist list_free(linklist h);
//获取索引位置的指针
linklist list_get(linklist h, int pos);
//删除指定位置的元素
int list_delete(linklist h, int pos);
//链表的反转
int list_reverse(linklist h);
//链表相邻两个节点最大值对应的第一个元素指针 value用来存储两值之和
linklist list_adjmax(linklist h, data_t *value);
//有序链表的合并，将h2合并到h1链表上
int list_merge(linklist h1, linklist h2);
//链表的排序
int list_sort(linklist h);
